#ifndef Engine_h
#define Engine_h

#ifdef WIN32
#include <Windows.h>
#include <esUtil.h>
#else
#include "SoundEngine.h"
#endif

#include <stdio.h>
#include <time.h>
#include <memory.h>
#include <vector>
#include <EGL/egl.h>
#include <GLES2/gl2.h>
#include <PNG/png.h>
#include "Vector.h"
#include "FileSystem.h"
#include "Graphics.h"
#include "Language.h"
#include "VGPLib.h"
#include "VGPConfig.h"
#include "Sprite.h"
#include "SceneEngine.h"
#include "SpritesInclude.h"
#include "FontsInclude.h"
#include "GuiInclude.h"
#include "Text.h"
#include "TouchCore.h"
#include "Application.h"
#include "GameState.h"
#include "GameInput.h"


#include "LogoState.h"

using namespace std;

//set resolution
#include "800x480.h"

//Title game
#define TITLE_GAME "vietgameplay"

//Define print
#ifndef WIN32
	#if USE_DEBUG
		#include <android/log.h>
		#define  LOG_TAG    "vietgameplay"
		#define  LOGE(...)  __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
	#else
		#define  LOGE(...)
	#endif
#else
#define LOGE(...) printf(__VA_ARGS__)
#endif

//define delete pointer and array pointer
#define SAFE_DEL(p) if (p) delete p; p = 0;
#define SAFE_DEL_ARRAY(p) if (p) delete []p; p = 0;

//define init map
enum InitMap {
	IS_EMPTY, 
	IS_CHARACTER 
};

//Define image 2D
enum InitTexture_Menu2D {	
	TEXTURE2D_MENU,
	TEXTURE2D_MENU_DEFAULT
	};

//Texture for model
enum InitTextureForModel {
	TEXTURE_GROUND_LV1,
	TEXTURE_GROUND_LV2,
	TEXTURE_GROUND_LV3,
	TEXTURE_CHARACTER
};

//Model
enum InitModel {
	MODEL_GROUND,
	MODEL_CUBE,
	MODEL_CHARACTER
};

//GameState
enum InitGameState {
	GAMESTATE_NULL,
	GAMESTATE_LOGO,
	GAMESTATE_LOADING
};


//Language
enum InitLanguage {
	ENGLISH,
	VIETNAMESE
};

//Sound id define
enum SoundPack {
	SOUND_TITLE_LOGO,
	SOUND_TITLE_MENU,
	SOUND_SFX_BOSS_DEATH,
	SOUND_SFX_BOX
};


#endif
